
namespace SIP.PN.Modelo.Entidades
{
    public class OperarioEspecialidad
    {
        private Especialidad especialidad;
        private NivelEspecialidad nivelEspecialidad;
        private Operario operario;
        private bool activo;

        public virtual Especialidad Especialidad
        {
            get { return especialidad; }
            set { especialidad = value; }
        }

        public virtual Operario Operario
        {
            get { return operario; }
            set { operario = value; }
        }

        public virtual NivelEspecialidad NivelEspecialidad
        {
            get { return nivelEspecialidad; }
            set { nivelEspecialidad = value; }
        }

        public virtual bool Activo
        {
            get { return activo; }
            set { activo = value; }
        }

        #region Metodos Sobreescritos

        public override bool Equals(object obj)
        {
            OperarioEspecialidad otro = obj as OperarioEspecialidad;
            if (otro == null) return false;
            
            return  otro.Especialidad.Equals(Especialidad) &&
                    otro.NivelEspecialidad.Equals(NivelEspecialidad) &&
                    otro.Operario.Equals(Operario);
        }

        public override int GetHashCode()
        {
            return string.Format("{0}-{1}", GetType(), ToString()).GetHashCode();
        }

        public override string ToString()
        {
            return string.Format("{0}-{1}-{2}", operario, especialidad, nivelEspecialidad);
        }

        #endregion
    }
}